home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / less < prev    next >
Internet Message Format  |  1995-03-31  |  6KB

  1. From helens!shelby!bloom-beacon!snorkelwacker!usc!ucsd!ucbvax!ndsuhp.UUCP!hernes Mon May 14 22:10:09 PDT 1990
  2. Status: RO
  3.  
  4. Article 1627 of comp.sys.handhelds:
  5. Path: helens!shelby!bloom-beacon!snorkelwacker!usc!ucsd!ucbvax!ndsuhp.UUCP!hernes
  6. >From: hernes@ndsuhp.UUCP
  7. Newsgroups: comp.sys.handhelds
  8. Subject: String catalog for the Hewlett Packard HP-48SX
  9. Message-ID: <9005142325.AA27038@plains.NoDak.edu>
  10. Date: 14 May 90 23:25:35 GMT
  11. Sender: daemon@ucbvax.BERKELEY.EDU
  12. Distribution: inet
  13. Organization: The Internet
  14. Lines: 292
  15.  
  16. Hi guys,
  17.  
  18. The following set of programs simulate the hp-48sx's catalog function for
  19. strings.  The main program is 'CAT' which I have bound to
  20. user-blue-shift-9. 'CAT' figures out which varibles in the current directory
  21. contain strings, then forms a catalog-look-alike menu of them.  There could
  22. be several options added, if you have any ideas that you think are real
  23. stud, (regarding Less/CAT) send me mail.
  24.  
  25. The keys used for 'CAT' are the up and down arrows, blue-shift-up and -down
  26. arrows, and the menu keys.
  27.  
  28. 'Less', is basically the same program with several
  29. added key-bindings.  The keys are as follows:
  30.  
  31. Page down: B, spc
  32.  
  33. Page up: C
  34.  
  35. Line down: D, Q, ENTER
  36.  
  37. Line up: E, K
  38.  
  39. Quit: F
  40.  
  41. Off: blue-shift-on
  42.  
  43. End of string: blue-shift-Q, blue-shift-B
  44.  
  45. Begining of string: blue-shift-K, blue-shift-C
  46.  
  47. Repeat previous command: .
  48.  
  49. Extended Command: A 
  50. (Not yet implemented)
  51.  
  52.  
  53. ---------------directory-starts-here-----------------
  54. %%HP: T(3)A(D)F(.);
  55. DIR
  56.   CAT
  57.     \<< STRINGS     @ this string contains 5 new-lines
  58. "
  59.  
  60.  
  61.  
  62.  
  63. " 3 DISP 1 1
  64. RCLMENU RCLF \-> b c
  65. d men flag
  66.       \<< 62 SF {
  67. Less QUIT NEW PURGE
  68. } TMENU
  69.         WHILE 62
  70. FS?
  71.         REPEAT
  72.           IF b SIZE
  73.           THEN c b
  74. SIZE OVER 4 + MIN
  75.             FOR x x
  76. d SAME "\|>" " " IFTE
  77. b x GET + x c - 3 +
  78. DISP
  79.             NEXT -1
  80. WAIT
  81.             CASE
  82. DUP 11.1 SAME
  83.               THEN
  84. DROP b d GET OBJ\->
  85. LCD\-> \-> e
  86. \<< Less e \->LCD
  87. \>> { Less QUIT NEW
  88. PURGE } TMENU
  89.               END
  90. DUP 25.1 SAME
  91.               THEN
  92. DROP d DUP 1 > -
  93. 'd' STO c d OVER <
  94. - 'c' STO
  95.               END
  96. DUP 13.1 SAME
  97.               THEN
  98. DROP
  99. IF DUP TYPE 2 SAME
  100. THEN
  101. "Name the string,
  102. Press ENTER."
  103. { \Ga V } INPUT OBJ\->
  104. STO STRINGS 'b' STO
  105. 1 'c' STO 1 'd' STO
  106. END
  107.               END
  108. DUP 14.1 SAME
  109.               THEN
  110. "'" b d GET + OBJ\->
  111. PURGE STRINGS 'b'
  112. STO 1 'c' STO 1 'd'
  113. STO
  114.               END
  115. DUP 35.1 SAME
  116.               THEN
  117. DROP d b SIZE OVER
  118. > + 'd' STO c d
  119. OVER 4 + > + 'c'
  120. STO
  121.               END
  122. DUP 12.1 SAME
  123.               THEN
  124. DROP 62 CF
  125.               END
  126. DUP 25.3 SAME
  127.               THEN
  128. DROP 1 1 'c' STO
  129. 'd' STO
  130.               END
  131. DUP 35.3 SAME
  132.               THEN
  133. b SIZE DUP 'd' STO
  134. 4 - 1 MAX 'c' STO
  135.               END
  136. 91.3 SAME
  137.               THEN
  138. OFF
  139.               END
  140.             END
  141.           ELSE 62
  142. CF
  143.           END
  144.         END men
  145. MENU flag STOF
  146.       \>>
  147.     \>>
  148.   STRINGS
  149.     \<< VARS \-> a
  150.       \<< { } 1 a
  151. SIZE
  152.         FOR x a x
  153. GET DUP VTYPE
  154.           IF 2 SAME
  155.           THEN +
  156.           ELSE DROP
  157.           END
  158.         NEXT OBJ\->
  159. DUP
  160.         IF
  161.         THEN 1 SWAP
  162. DUP \-> a
  163.           \<<
  164.             START
  165. \->STR DUP SIZE 1 - 2
  166. SWAP SUB a ROLL
  167.             NEXT a
  168. \->LIST
  169.           \>>
  170.         ELSE DROP {
  171. }
  172.         END
  173.       \>>
  174.     \>>
  175.   Less
  176.     \<< SPLIT DEPTH
  177. \->LIST 1 RCLMENU
  178. RCLF 12.1 \-> A L men
  179. FLAG X
  180.       \<< 64 SF 63
  181. -49 -50 CF CF SF
  182. -40 CF
  183.         WHILE 64
  184. FS?
  185.         REPEAT
  186.           IF 63 FS?
  187.           THEN A L
  188. LL L 6 + A SIZE /
  189. 100 * IP DUP 100 <
  190. SWAP \->STR "%" +
  191. "END" IFTE { "P\|v"
  192. "P\|^" "\|v" "\|^" "QUIT"
  193. } + TMENU 63 CF
  194.           END -1
  195. WAIT
  196.           IF DUP
  197. 93.1 SAME
  198.           THEN DROP
  199. X
  200.           END
  201.           CASE DUP
  202. 11.1 SAME
  203.             THEN
  204. 'X' STO "Command?"
  205. { ":" 2 ALG \Ga }
  206. INPUT
  207.             END DUP
  208. 12.1 SAME OVER 94.1
  209. SAME OR
  210.             THEN
  211. 'X' STO L DUP 7 + A
  212. SIZE < 7 * + 'L'
  213. STO 63 SF
  214.             END DUP
  215. 13.1 SAME
  216.             THEN
  217. 'X' STO L 7 - DUP 1
  218. \>= SWAP 1 IFTE 'L'
  219. STO 63 SF
  220.             END DUP
  221. 14.1 SAME OVER 35.1
  222. SAME OR OVER 51.1
  223. SAME OR
  224.             THEN
  225. 'X' STO L DUP 1 + A
  226. SIZE < + 'L' STO 63
  227. SF
  228.             END DUP
  229. 15.1 SAME OVER 25.1
  230. SAME OR
  231.             THEN
  232. 'X' STO L DUP 1 - 0
  233. > - 'L' STO 63 SF
  234.             END DUP
  235. 16.1 SAME
  236.             THEN
  237. DROP 64 CF
  238.             END DUP
  239. 12.3 SAME OVER 35.3
  240. SAME OR
  241.             THEN
  242. 'X' STO A SIZE 6 -
  243. 'L' STO 63 SF
  244.             END DUP
  245. 13.3 SAME OVER 25.3
  246. SAME OR
  247.             THEN
  248. 'X' STO 1 'L' STO
  249. 63 SF
  250.             END DUP
  251. 91.3 SAME
  252.             THEN
  253. 'X' STO OFF
  254.             END
  255.           END
  256.         END FLAG
  257. STOF men MENU
  258.       \>>
  259.     \>>
  260.   LL
  261.     \<< DUP 7 + SUB 1
  262. 7
  263.       FOR ln DUP ln
  264.         IFERR GET
  265.         THEN DROP
  266. DROP "~"
  267.         END ln DISP
  268.       NEXT DROP
  269.     \>>
  270.   STR\->GROB
  271.     \<< SPLIT DEPTH
  272. \->LIST \-> A
  273.       \<< # 83h A
  274. SIZE 8 * R\->B BLANK
  275. A 1 SWAP SIZE
  276.         FOR I A I
  277. GET 2 \->GROB # 0h I
  278. 1 - 8 * R\->B 2 \->LIST
  279. SWAP GOR
  280.         NEXT
  281.       \>>
  282.     \>>
  283.   SPLIT
  284.     \<<
  285.       WHILE DUP
  286. SIZE 22 > OVER "
  287. "
  288. POS OR
  289.       REPEAT DUP
  290. "
  291. " POS DUP DUP
  292.         IF 22 < AND
  293.         THEN OVER
  294. SWAP 1 SWAP DUP 4
  295. ROLLD 1 - SUB 3
  296. ROLLD 1 + OVER SIZE
  297. SUB
  298.         ELSE DROP
  299. DUP 1 22 SUB SWAP
  300. 23 OVER SIZE SUB
  301.         END
  302.       END DUP "" ==
  303.       IF
  304.       THEN DROP
  305.       END
  306.     \>>
  307. END
  308.  
  309.  
  310.